██████╗ ███████╗████████╗██╗██████╗ ███████╗██████╗ ██╗ █████╗
██╔══██╗██╔════╝╚══██╔══╝██║██╔══██╗██╔════╝██╔══██╗██║██╔══██╗
██████╔╝█████╗ ██║ ██║██████╔╝█████╗ ██║ ██║██║███████║
██╔══██╗██╔══╝ ██║ ██║██╔═══╝ ██╔══╝ ██║ ██║██║██╔══██║
██║ ██║███████╗ ██║ ██║██║ ███████╗██████╔╝██║██║ ██║
╚═╝ ╚═╝╚══════╝ ╚═╝ ╚═╝╚═╝ ╚══════╝╚═════╝ ╚═╝╚═╝ ╚═╝
- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
Init
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
top
mwbqmwbginit, in un mwbwsistema operativo mwcaUnix, è il primo mwcqprocesso che il mwcgkernel manda in mwcwesecuzione dopo che il mwdacomputer ha terminato la fase di mwdqbootstrap. Esso ha il compito di portare il sistema in uno stato operativo, avviando i mwdgprogrammi e servizi necessari.
Dato che init è sempre il primo processo eseguito, esso ha tipicamente il mweaPID 1. Il suo mweqfile di configurazione, sulla maggior parte dei sistemi, è mweg/etc/inittab.
Contents
• Note
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I runlevel
Solitamente, init viene configurato in modo da potere portare il sistema in diversi stati di esecuzione o livelli operativi della macchina, relativamente ai servizi avviati con caratteristiche diverse, detti mwgarunlevel. Ad esempio, può esistere un runlevel in cui il sistema fornisce servizi di rete, come mwgqHTTP e mwggFTP, e può essere comodo avere un altro runlevel in cui tali servizi non sono forniti, da utilizzare nei casi in cui la mwgwconnettività di rete sia mancante o quando è necessario eseguire interventi di manutenzione. init ha il compito di impostare il runlevel iniziale, e di portare il sistema da un runlevel ad un altro.
Differenza tra sistemi in stile System V e quelli in stile BSD
Esistono due filosofie per organizzare il funzionamento di init:
• Nel metodo mwiaSystem V, a ogni runlevel corrisponde una mwiqdirectory (solitamente mwig/etc/rcX.d,cite-ref-runcommands-1-0[1] dove mwjwX è il numero del runlevel), nella quale risiedono una serie di mwkascript i cui nomi iniziano per mwkqK (= mwkgKill) o per mwkwS (= mwlaStart), seguite da un numero. I primi vengono eseguiti quando si abbandona il runlevel, e hanno il compito di terminare i servizi in esecuzione, mentre i secondi vengono eseguiti quando si entra nel runlevel, e servono ad avviare i suoi servizi caratteristici.
• Nel metodo mwlgBSD, a ogni runlevel corrisponde uno script (solitamente chiamato mwlw/etc/rc.d/rc.X)cite-ref-runcommands-1-1[1], che ha il compito di prendere tutti i provvedimenti necessari a portare il sistema nel runlevel richiesto.
Processi orfani
Altro importante compito delegato al processo init è quello di prendere in affidamento i mwpaprocessi orfani, che altrimenti non avrebbero più un mwpqmwpgparent PID valido, assicurandosi di recuperare alla loro terminazione il loro mwpwvalore di uscita tramite le mwqachiamate di sistema mwqqwait() o mwqgwaitpid(), in modo da evitare che essi restino nel sistema come mwqwprocessi zombie.
Note
Voci correlate
Collegamenti esterni